#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <thread>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // //创建QTimer实例
    // timer = new QTimer(this);
    // //连接限号和槽，QTimer会每隔一段时间触发一个timeout 信号，现在把 timeout 信号和updateTimer连接起来
    // //此时意味着每次触发 timeout 信号都会伴随 updateTime 的函数执行
    // connect(timer, &QTimer::timeout, this, &Widget::updateTime);
    // // 启动 QTimer ,并且规定每隔1000ms 触发一次timeout信号
    // timer->start(1000);

    // int value = ui->lcdNumber->intValue();
    // while(true)
    // {
    //     std::this_thread::sleep_for(std::chrono::seconds(1));
    //     if(value <= 0)
    //     {
    //         break;
    //     }
    //     ui->lcdNumber->display(value - 1);
    // }

    std::thread t([this](){
        int value = this->ui->lcdNumber->intValue();
        while(true)
        {
            std::this_thread::sleep_for(std::chrono::seconds(1));
            if(value <= 0)
            {
                break;
            }
            this->ui->lcdNumber->display(value - 1);
        }
    });

}
void Widget::updateTime()
{
    qDebug() << "updateTime";

    int value = ui->lcdNumber->intValue();
    if(value <= 0)
    {
        //如果时间到，停止定时器
        timer->stop();
        return ;
    }

    ui->lcdNumber->display(value - 1);
}
Widget::~Widget()
{
    delete ui;
}
